<?php
/*
 * Copyright (c) 2022 西部盒子.
 * Author:  @luge
 * Update: 2022/5/20 上午9:45
 */



//后台日志列表增加分类项目列
add_filter('manage_edit-wb_log_columns', function ($columns) {
    return array_merge(array('cb' => '', 'parent cat' => '项目'), $columns);
}, 10, 1);

//后台日志列表增加分类项目列 显示内容
add_action('manage_wb_log_posts_custom_column', function ($column, $post_id) {
    if ($column == 'parent cat') {
        $cats = get_the_terms($post_id, 'wb_log_cat');
        if ($cats) {
            $catList = array();
            foreach ($cats as $cat) {
                $url = add_query_arg(array('post_type' => 'wb_log', 'wb_log_cat' => $cat->slug), 'edit.php');
                $catList[] = "<a href=\"$url\">$cat->name</a>";
            }
            echo implode(' , ', $catList);
        }
    }
}, 10, 2);


//后台日志列表分类页增加简码显示
add_filter('manage_edit-wb_log_cat_columns', function () {
    return array(
        'cb' => '<input type="checkbox" />',
        'name' => '项目名称',
        'shortcode' => '调用简码',
        'posts' => '统计'
    );
}, 10);

//后台日志列表分类页增加简码显示 显示内容
add_action('manage_wb_log_cat_custom_column', function ($none, $column, $term_id) {
    if ($column == 'shortcode') {
        echo "<input value='[wboxupdatelog cat=$term_id]' type='text' size='40' onfocus='this.select()' />";
    }
}, 10, 3);


//发布新日志时的标题提示文本
add_filter('enter_title_here', function ($title, $post) {
    if (isset($post->post_type) && $post->post_type == 'wb_log') {
        return "这里请输入版本号";
    }
    return $title;
}, 10, 2);

//后台发布日志自动填入标题，版本号
add_action('admin_print_footer_scripts-post-new.php', function () {
    if (!isset($_GET['post_type']) || $_GET['post_type'] !== 'wb_log') {
        return;
    }
    //检查后台开关
    if (get_option('wbox_update_log_auto_title', 1) > 1) {
        return;
    }
    //获取最新一条日志记录
    if ($posts = query_posts(array('post_type' => 'wb_log', 'showposts' => 1, 'orderby' => 'post_date', 'order' => 'desc'))) {
        $title = $posts[0]->post_title;
        $tmparr = explode('.', $title);
        $endarr = end($tmparr);
        if (is_numeric($endarr)) {
            $tmparr[count($tmparr) - 1] = $endarr + 1;
            $title = implode('.', $tmparr);
            echo "<script>jQuery('#title').val('$title');</script>";
        }
        return;
    }
    echo "<script>jQuery('#title').val('1.0.0');</script>";
}, 99);

//后台设置页面
function wbox_update_log_add_menu() {
    add_submenu_page('edit.php?post_type=wb_log','更新日志设置 - BY 西部盒子', '设置','edit_themes','wbox_update_log_setings', 'wbox_update_log_display_function', 999);
}
add_action('admin_menu', 'wbox_update_log_add_menu');
function wbox_update_log_display_function() {
    $update = false;
    if (isset($_POST['wbox_update_log_showstyle']) && $_POST['wbox_update_log_showstyle']) {
        update_option('wbox_update_log_showstyle', trim($_POST['wbox_update_log_showstyle']));
        update_option('wbox_update_log_css', trim($_POST['wbox_update_log_css']));
        update_option('wbox_update_log_order',trim($_POST['wbox_update_log_order']));
        update_option('wbox_update_log_auto_title',trim($_POST['wbox_update_log_auto_title']));
        $update = true;
    }
    ?>
    <div class="wrap" id="profile-page">
        <?php if ($update) {
            echo '<div class="notice notice-info"><p>更新成功</p></div>';
        }
        ?>
        <form method="post" name="wbox_seting" id="wbox_seting">
            <h2>更新日志 - 设置</h2>
            <table class="form-table">
                <tbody>
                <tr class="form-field">
                    <th scope="row"><label for="wbox_update_log_showstyle">每页显示条数</label></th>
                    <td>
                        <select name="wbox_update_log_showstyle" id="wbox_update_log_showstyle">
                            <option value="1">时间轴样式</option>
                            <option value="2" <?php echo get_option('wbox_update_log_showstyle') == 2? ' selected="selected"' : ''; ?>>列表样式</option>
                        </select>
                        <p>默认显示时间轴样式。</p>
                    </td>
                </tr>

                <tr class="form-field">
                    <th scope="row"><label for="wbox_update_log_order">排序方式</label></th>
                    <td>
                        <select name="wbox_update_log_order" id="wbox_update_log_order">
                            <option value="DESC">从新到旧</option>
                            <option value="ASC" <?php echo get_option('wbox_update_log_order') == 'ASC'? ' selected="selected"' : ''; ?>>从旧到新</option>
                        </select>
                        <p>更新日志列表显示排序。根据日期排序的。</p>
                    </td>
                </tr>

                <tr class="form-field">
                    <th scope="row"><label for="wbox_update_log_auto_title">自动补全标题</label></th>
                    <td>
                        <select name="wbox_update_log_auto_title" id="wbox_update_log_auto_title">
                            <option value="1">开启</option>
                            <option value="2" <?php echo get_option('wbox_update_log_auto_title') == 2? ' selected="selected"' : ''; ?>>关闭</option>
                        </select>
                        <p>打开后添加日志时会根据最新一条日志的版本号计算出新的版本号并插入标题区域。</p>
                    </td>
                </tr>

                <tr class="form-field">
                    <th scope="row"><label for="wbox_update_log_css">额外的CSS样式</label></th>
                    <td>
                        <textarea name="wbox_update_log_css" id="wbox_update_log_css" rows="5" cols="30"><?php echo get_option('wb_time_line_css'); ?></textarea>
                        <p>自定义CSS区域，会在日志记录上方的CSS区域调用，前后不用添加style标签。</p>
                    </td>
                </tr>
                </tbody>
            </table>
            <?php submit_button('保存设置');?>
        </form>
        <h3>插件使用方法：</h3>
        <p>在要调用的区域输入简码： <code>[wboxupdatelog cat={catid}]</code> ，将{catid}替换成你想调用的日志分类</p>
        <h3>项目分类对照表：<small style="color: #e00">项目分类 - id</small></h3>
        <style>.wb-cat{margin-right: 20px;background: #d2e9f3;padding: 5px}</style>
        <p><?php
            foreach (get_terms(['taxonomy'=>'wb_log_cat','hide_empty' =>false]) as $term) {
                echo '<span class="wb-cat">' . $term->name . ' <code>' . $term->term_id . '</code></span>';
            }
            ?></p>
        <p style="position: fixed;bottom: 20px;right: 20px;">更新日志插件 <a href="https://blog.wbox8.com/" target="_blank">西部盒子</a> 提供</p>
    </div>
<?php }